package com.aspose.cells;

abstract class zl extends zj {
   protected static DateTime c;
   protected int d;

   public zl(zhh var1, String var2) {
      super(var1, var2);
   }

   public zxz a(zxu var1, int var2, Object var3) {
      switch(var2) {
      case 9:
         return this.a(var1, (double)(Integer)var3);
      case 14:
         return this.a(var1, (Double)var3);
      case 16:
         return this.b(var1, (DateTime)var3);
      default:
         zxz var4 = super.a(var1, var2, var3);
         if (var4.f() != 7) {
            return var4;
         } else {
            this.a(var3, var2, var4);
            return var4;
         }
      }
   }

   public zxz a(zxu var1, DateTime var2, double var3, boolean var5) {
      zxz var6 = super.a((zxu)var1, 16, (Object)var2);
      if (var6.f() != 7) {
         return var6;
      } else if (var3 < 0.0D && this.f()) {
         var6.a(var1.b());
         return var6;
      } else {
         return var6;
      }
   }

   protected zxz a(zxu var1, DateTime var2) {
      zxz var3 = super.a((zxu)var1, 16, (Object)var2);
      if (var3.f() == 7) {
         var3.a(var1.b());
      }

      return var3;
   }

   private zxz b(zxu var1, DateTime var2) {
      return this.a(var1, var2, this.e() ? this.a(var2) : 0.0D, true);
   }

   private zxz a(zxu var1, double var2) {
      if (var2 > 2958465.999994D) {
         zxz var4 = super.a((zxu)var1, 14, (Object)var2);
         var4.a(var1.b());
         return var4;
      } else {
         return this.a(var1, this.f() && var2 >= 0.0D ? this.b(var2) : DateTime.a, var2, true);
      }
   }

   protected void d(char[] var1, int var2, int var3, StringBuilder var4) {
      int var5 = var4.length();
      this.e(var1, var2, var3, var4);
      var1 = com.aspose.cells.b.a.zr.a(var4).substring(var5).toCharArray();
      var4.setLength(var5);
      var2 = 0;
      var3 = var1.length;

      while(true) {
         while(var2 < var3) {
            switch(var1[var2]) {
            case 'A':
            case 'a':
               int var6 = com.aspose.cells.a.c.zk.a(var1, var2, var3);
               if (var6 > var2) {
                  com.aspose.cells.a.c.zk.a(var4, var1, var2, var6);
                  var2 = var6;
                  break;
               }
            default:
               var2 = this.a(var1, var2, var3, var4);
            }
         }

         return;
      }
   }

   protected void e(char[] var1, int var2, int var3, StringBuilder var4) {
      int var5 = -1;
      char var6 = ' ';
      boolean var7 = false;

      while(true) {
         label171:
         while(var2 < var3) {
            switch(var1[var2]) {
            case 'A':
            case 'a':
               var4.append(var1[var2]);
               break;
            case 'B':
            case 'C':
            case 'F':
            case 'I':
            case 'J':
            case 'K':
            case 'L':
            case 'N':
            case 'O':
            case 'P':
            case 'Q':
            case 'R':
            case 'T':
            case 'U':
            case 'V':
            case 'W':
            case 'X':
            case 'Z':
            case '\\':
            case ']':
            case '^':
            case '_':
            case '`':
            case 'b':
            case 'c':
            case 'f':
            case 'i':
            case 'j':
            case 'k':
            case 'l':
            case 'n':
            case 'o':
            case 'p':
            case 'q':
            case 'r':
            case 't':
            case 'u':
            case 'v':
            case 'w':
            case 'x':
            default:
               var2 = this.b(var1, var2, var3, var4);
               continue;
            case 'D':
            case 'd':
               if (var5 > -1) {
                  this.d |= 2;
                  if ((this.d & 939524096) == 0) {
                     if (this.b(1)) {
                        this.d |= 536870912;
                     } else {
                        this.d |= 268435456;
                     }
                  }

                  var5 = -1;
               }

               var4.append('d');
               var6 = 'd';
               this.d |= 4;
               if ((this.d & 939524096) == 0) {
                  if (this.b(2)) {
                     this.d |= 268435456;
                  } else if (this.b(1)) {
                     this.d |= 671088640;
                  }
               }
               break;
            case 'E':
            case 'e':
               var4.append("yyyy");
               this.i();
               this.d |= 128;
               ++var2;

               while(true) {
                  if (var2 >= var3 || var1[var2] != 'e' && var1[var2] != 'E') {
                     continue label171;
                  }

                  ++var2;
               }
            case 'G':
            case 'g':
               this.d |= 128;
               var4.append(var1[var2]);
               break;
            case 'H':
            case 'h':
               if (var5 > -1) {
                  this.h();
                  var5 = -1;
               }

               var6 = var1[var2];
               var4.append(var1[var2]);
               this.d |= 8;
               break;
            case 'M':
            case 'm':
               if (var2 > 0 && var2 + 3 < var3 && var1[var2 + 1] == '/' && (var1[var2 - 1] == 'a' || var1[var2 - 1] == 'A') && (var1[var2 + 2] == 'p' || var1[var2 + 2] == 'P') && (var1[var2 + 3] == 'm' || var1[var2 + 3] == 'M')) {
                  var4.append(var1, var2, 4);
                  var2 += 4;
                  this.d |= 64;
                  continue;
               }

               var5 = var2++;

               label133:
               while(var2 < var3) {
                  switch(var1[var2]) {
                  case 'M':
                  case 'm':
                     ++var2;
                     break;
                  default:
                     break label133;
                  }
               }

               var5 = var2 - var5;
               switch(var5) {
               case 1:
               case 2:
                  char var11 = 'M';
                  boolean var9 = false;
                  switch(var6) {
                  case 'H':
                  case 'h':
                     var11 = 'm';
                     var7 = true;
                     var9 = true;
                     this.d |= 16;
                     var6 = 'm';
                     break;
                  case 's':
                     if (!var7) {
                        var11 = 'm';
                        var7 = true;
                        this.d |= 16;
                     }

                     var6 = 'm';
                     var9 = true;
                  }

                  for(int var10 = 0; var10 < var5; ++var10) {
                     var4.append(var11);
                  }

                  if (var9) {
                     var5 = -1;
                  } else {
                     var5 = var4.length() - var5;
                  }
                  continue;
               case 3:
                  var5 = -1;
                  var4.append("MMM");
                  this.d |= 1073741824;
                  this.h();
                  continue;
               case 4:
               default:
                  var5 = -1;
                  var4.append("MMMM");
                  this.d |= 1073741824;
                  this.h();
                  continue;
               case 5:
                  var5 = -1;
                  var4.append("MMMMM");
                  this.d |= 1073741824;
                  this.h();
                  continue;
               }
            case 'S':
            case 's':
               if (var5 > -1) {
                  for(int var8 = var4.length(); var5 < var8 && var4.charAt(var5) == 'M'; ++var5) {
                     var4.setCharAt(var5, 'm');
                     this.d |= 16;
                  }

                  var5 = -1;
                  var7 = true;
               }

               var6 = 's';
               var4.append('s');
               this.d |= 32;
               break;
            case 'Y':
            case 'y':
               if (var5 > -1) {
                  this.d |= 2;
                  if ((this.d & 939524096) == 0) {
                     if (this.b(4)) {
                        this.d |= 402653184;
                     } else {
                        this.d |= 805306368;
                     }
                  }

                  var5 = -1;
               }

               var4.append('y');
               var6 = 'y';
               this.i();
               break;
            case '[':
               if (var2 + 1 < var3) {
                  switch(var1[var2 + 1]) {
                  case 'H':
                  case 'h':
                     var6 = var1[var2 + 1];
                     this.d |= 8;
                     break;
                  case 'M':
                  case 'm':
                     var7 = true;
                     this.d |= 16;
                  }
               }

               var2 = this.b(var1, var2, var3, var4);
               continue;
            }

            ++var2;
         }

         if (var5 > -1) {
            this.h();
         }

         return;
      }
   }

   private void h() {
      this.d |= 2;
      if ((this.d & 939524096) == 0) {
         if (this.b(1)) {
            this.d |= 536870912;
         } else if (this.b(4)) {
            this.d |= 402653184;
         }
      }

   }

   private void i() {
      this.d |= 1;
      if ((this.d & 939524096) == 0) {
         if (this.b(2)) {
            this.d |= 805306368;
         } else if (this.b(4)) {
            this.d |= 939524096;
         }
      }

   }

   protected int b(char[] var1, int var2, int var3, StringBuilder var4) {
      int var5 = com.aspose.cells.a.c.zk.a(var1, var2, var3);
      if (var5 <= var2) {
         return super.b(var1, var2, var3, var4);
      } else {
         while(var2 < var5) {
            var4.append('\\');
            var4.append(var1[var2]);
            ++var2;
         }

         return var2;
      }
   }

   protected int a(char[] var1, int var2, int var3, StringBuilder var4) {
      int var5 = com.aspose.cells.a.c.zk.a(var1, var2, var3);
      if (var5 > var2) {
         var4.append(var1, var2, var5 - var2);
         return var5;
      } else {
         switch(var1[var2]) {
         case '/':
            var4.append(this.a.b().f().g());
            ++var2;
            break;
         default:
            var2 = super.a(var1, var2, var3, var4);
         }

         return var2;
      }
   }

   public void a(int var1) {
      this.d |= var1;
   }

   public boolean b(int var1) {
      return (this.d & var1) != 0;
   }

   public boolean c() {
      return (this.d & 1073741824) != 0;
   }

   public int d() {
      int var1 = this.d >> 27 & 7;
      return var1 > 1 ? var1 : 2;
   }

   public boolean e() {
      return false;
   }

   public boolean f() {
      return true;
   }

   public int a() {
      return 3;
   }

   public int g() {
      return (this.d & 135) != 0 ? 3 : 4;
   }

   static {
      c = DateTime.b.addMilliseconds(-500.0D);
   }
}
